package com.xuan.common.core.utils;

import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;

import java.util.Map;


public class JwtUtils {

    /**
     *  生成令牌
     * @param claims 数据
     * @param secret 密钥(定期更换)
     * @return 令牌
     */
    public static String createToken(Map<String, Object> claims, String secret) {
        return Jwts.builder()
                    // 设置数据
                    .setClaims(claims)
                    // 设置签名算法
                    .signWith(SignatureAlgorithm.HS512, secret)
                    .compact();
    }


    /**
     *
     * @param token 令牌
     * @param secret 密钥
     * @return 数据(Map)
     */
    public static Claims parseToken(String token, String secret) {
        return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
    }
}
